// 创建节流函数（无参数），单位ms
function throttle(func, delay) {
    let lastRun = 0;
    return function() {
        const now = Date.now();
        if (now - lastRun >= delay) {
            func();
            lastRun = now;
        }
    };
}

// 自动关闭的弹窗，单位ms
function autoCloseAlert(message, duration = 2000) {
    const alertBox = document.getElementById('custom-alert');
    const messageBox = document.getElementById('custom-alert-message');
    
    // 设置提示内容
    messageBox.textContent = message;
    alertBox.style.display = 'block';

    // 自动关闭
    setTimeout(() => {
        alertBox.style.display = 'none';
    }, duration); // 2秒后自动关闭（可调）
}

// 是否弹窗，单位ms
function YNAlert(message) {
    ctrller.YNAlertCtrller = new AbortController();
    const alertBox = document.getElementById('yn-alert');
    const messageBox = document.getElementById('yn-alert-message');
    
    // 设置提示内容
    messageBox.textContent = message;
    alertBox.style.display = 'block';

    return new Promise((resolve) => {
        document.getElementById('yes').addEventListener(
            'click',
            function() {
                alertBox.style.display = 'none';
                ctrller.YNAlertCtrller.abort();
                resolve(true);
            },
            {signal: ctrller.YNAlertCtrller.signal}
        );
        document.getElementById('no').addEventListener(
            'click',
            function() {
                alertBox.style.display = 'none';
                ctrller.YNAlertCtrller.abort();
                resolve(false);
            },
            {signal: ctrller.YNAlertCtrller.signal}
        );
    });
}

// 随机取两值间的整数（包括两值）
function randomInt(min, max) {
  return Math.floor(Math.random() * (max - min + 1)) + min;
}